/*************************************************************************
    > File Name: buffer.h
    > Author: ma6174
    > Mail: ma6174@163.com 
    > Created Time: 2022年10月28日 星期五 17时09分09秒
 ************************************************************************/

//#include<iostream>
//using namespace std;

#ifndef _BUFFER_H
#define _BUFFER_H

#include<stdio.h>
#include<stdlib.h>
#include <error.h>
#include<pthread.h>
#include<sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include<fcntl.h>
#include<dirent.h>
#include<string.h>
#include<unistd.h>
#include<time.h>
#define BUFSIZE 1024
#define TSIZE 30
#define THREADS_COUNT 3
#define MAXLEN 257

size_t getFileSize(int fd);
void *thread_copy(void *arg);
void copyfile(char *src, char *dst);
void copy(char *src, char *dst);
void Progress();
void del_file(char *path);
void del_dir(char *path);
int comp(const void *a, const void *b);
void copysrc_to_dst(char *src, char *dst);
void dir_traverse(char *path1, char *path2);
void comAB(char *path1, char *path2);

int finddir(char *path);
int find_file(char *path,char *filename);
int CompareFile(char *file1, char *file2);
void dir_traverse1(char *src,char *dest);
void dir_traverse2(char *src,char *dest);
void Sync(char *src,char *dest);
void dir_same1(char *src,char *dest);
void dir_same2(char *src,char *dest);
void AB_Sync(char *src,char *dest);
int LastTime(char * file1,char *file2);
int change(char *t,int x,int length);

int flag = 0;//标志要拷贝文件的类型：1目录，0文件

struct fileNode{
	int fileType; // 1表示目录,0表示文件
	char filename[88];
	char time[TSIZE]; //记录文件的修改时间
};

//线程结构体
struct thread_block{
	int infd; //源文件描述符
	int outfd; //目标文件描述符
	size_t begin;
	size_t end;
};



#endif /* _BUFFER_H */





